@echo off
chcp 65001
echo ==========================================
echo      待办事项管理软件 - 自动打包脚本
echo ==========================================
echo.

:: 检查PyInstaller是否安装
python -c "import PyInstaller" 2>nul
if errorlevel 1 (
    echo [错误] 未检测到PyInstaller，正在安装...
    pip install pyinstaller
    if errorlevel 1 (
        echo [错误] PyInstaller安装失败，请手动安装
        pause
        exit /b 1
    )
    echo [成功] PyInstaller安装完成
    echo.
)

:: 清理之前的打包文件
echo [步骤1] 清理旧的打包文件...
if exist "dist" rmdir /s /q "dist"
if exist "build" rmdir /s /q "build"
echo [完成] 清理完成
echo.

:: 更新版本号到spec文件（可选）
echo [步骤2] 开始打包程序...
echo 使用配置文件: 打包程序.spec
echo.

:: 执行打包
pyinstaller --clean 打包程序.spec
if errorlevel 1 (
    echo.
    echo [错误] 打包失败，请检查错误信息
    pause
    exit /b 1
)

echo.
echo [步骤3] 检查打包结果...
if exist "dist\main.exe" (
    echo [成功] 打包完成！
    echo 可执行文件位置: dist\main.exe
    
    :: 获取文件大小
    for %%I in ("dist\main.exe") do (
        echo 文件大小: %%~zI 字节
    )
    
    echo.
    echo [步骤4] 复制必要文件到dist目录...
    
    :: 复制icon.ico（如果存在）
    if exist "icon.ico" (
        copy "icon.ico" "dist\" >nul 2>&1
        echo - 已复制: icon.ico
    )
    
    :: 复制数据库文件（如果存在）
    if exist "default_todo_data.db" (
        copy "default_todo_data.db" "dist\" >nul 2>&1
        echo - 已复制: default_todo_data.db
    )
    
    :: 复制配置文件（如果存在）
    if exist "plugin_config.json" (
        copy "plugin_config.json" "dist\" >nul 2>&1
        echo - 已复制: plugin_config.json
    )
    
    :: 复制WebDAV同步模块（如果存在）
    if exist "webdav_sync.py" (
        copy "webdav_sync.py" "dist\" >nul 2>&1
        echo - 已复制: webdav_sync.py
    )
    
    echo.
    echo ==========================================
    echo           🎉 打包成功完成！
    echo ==========================================
    echo.
    echo 打包文件位置: dist\main.exe
    echo 现在可以测试升级功能了！
    echo.
    
    :: 询问是否运行程序
    set /p choice="是否立即运行程序进行测试？(Y/N): "
    if /i "%choice%"=="Y" (
        echo 正在启动程序...
        start "" "dist\main.exe"
    )
    
) else (
    echo [错误] 未找到生成的可执行文件
    echo 请检查打包过程中是否有错误.
)

echo.
pause
